<?php
require_once('../../../../wp-load.php');
require ( ABSPATH . 'wp-admin/includes/image.php' );
$rs = "";
global $wpdb, $current_user;
get_currentuserinfo();
//----process up product here.------------------
if ( !is_user_logged_in() ) {
    echo json_encode(array("error" => 1));//chưa login mà đòi xài hả. Biến
    exit;
}
//chú ý http://stackoverflow.com/questions/4139301/php-0-as-a-string-with-empty
if (isset($_POST["action"]) && strcmp("insert_new_product", $_POST["action"])==0){
    $result = array();
    if(isset($_POST["title"]) && $_POST["title"]!=""){
        //Ngăn ko cho user post các thẻ html hoăc php lên
        // đề phòng tấn công.
        $title = strip_tags($_POST["title"]);
    }else{
        array_push($result, "2"); // no title
    }
    
    if(isset($_POST["amount"]) && $_POST["amount"]!=""){
        $amount = strip_tags($_POST["amount"]);
        //kiểm tra tiếp, mày có phải là số ko, ko thì biến
        if(!is_numeric($amount)){
            array_push($result,"3"); // no amount
        }
    }else{
        array_push($result,"3"); // no amount
    }
    
    if (sizeof($result) >0){
        echo json_encode(array("err" => $result));
        exit;
    }
    
    //ồ, chạy được tới đây là coi như các biến cần đã ok rồi.
    $code = isset($_POST["code"])? $_POST["code"] : "";
    $source = isset($_POST["source"])? $_POST["source"] : "";
    $price = isset($_POST["price"])? $_POST["price"] : "";
    if(!is_numeric($amount)){
        $price ="Liên Hệ";
    }
    $status = isset($_POST["status"])? $_POST["status"] : "New";
    $category = isset($_POST["category"])? $_POST["category"]:"-1";
    $description = isset($_POST["description"])? $_POST["description"]:"";
    $productTag = isset($_POST["tags"])? $_POST["tags"]:"";
    $currentId = isset($_POST["current_id"])? $_POST["current_id"]:"";
    
    $advals = array();
    $advals['name'] = appthemes_filter($title);
    $advals['description'] = $description;
    $advals['user_id'] = $current_user->ID;
    $advals['category_id'] = $category;
    $advals['price'] = $price;
    $advals['code'] = $code;
    $advals['source'] = $source;
    $advals['amount'] = $amount;
    $advals['status'] = $status;
    $advals['time_created'] = time();
    $imageList = $_POST['img'];
    $imageProduct = empty($imageList) ? '' : $imageList;
    $advals['options'] = $productTag;
    
    $advals = stripslashes_deep($advals);
    
    if($currentId == "")
    {	
        $pid = ProductModel::insertNewProduct($advals);
    }
    else
    {	
        $pid = ProductModel::updateProduct($advals,array('id' => $currentId ));
    }
    $attachmentIdList = $_POST['attachment'];

    if($currentId == "")
    {
        if ($pid !=false) {
            //add danh sách image ảnh vào trong post.
            //Lợi dụng chức năng post_meta của wp cho nhanh.
            add_post_meta($pid, 'product_attachment_image' , $attachmentIdList);
            echo json_encode(array("err" => 0,
                "pid" => $pid
            ));
            exit;
            //$notify = "<div class=\"notify\"><p>Up sản phẩm thành công. Xem <a href=\"".get_permalink($pid)."\">sản phẩm </a>vừa up. Hoặc vào trang quản lý chung</p></div>";
        }else{
            echo json_encode(array("err" => 4));
            exit;
        }
    }
    else
    {
        //add danh sách image ảnh vào trong post.
        //Lợi dụng chức năng post_meta của wp cho nhanh.
        delete_post_meta($currentId, 'product_attachment_image');
        add_post_meta($currentId, 'product_attachment_image' , $attachmentIdList);
        echo json_encode(array("err" => 0,
            "pid" => $currentId
        ));
        exit;
        //$notify = "<div class=\"notify\"><p>Up sản phẩm thành công. Xem <a href=\"".get_permalink($pid)."\">sản phẩm </a>vừa up. Hoặc vào trang quản lý chung</p></div>";
    }
}

//--------process image here-------------------
$arr_url = "";
$list_attachment_id = array();
if(!empty($_FILES["app_attachment_file"]["error"]) && $_FILES["app_attachment_file"]["error"]!=""){
    foreach ($_FILES["app_attachment_file"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $attach_id = false;
            $file_name = basename($_FILES['app_attachment_file']['name'][$key]);
            $file_type = wp_check_filetype($file_name);
            $file_renamed = mt_rand(1000, 1000000) . "." . $file_type['ext'];

            $upload = array(
                'name' => $file_renamed,
                'type' => $file_type['type'],
                'tmp_name' => $_FILES['app_attachment_file']['tmp_name'][$key],
                'error' => $_FILES['app_attachment_file']['error'][$key],
                'size' => $_FILES['app_attachment_file']['size'][$key]
            );
            $file = ys_handle_upload($upload, array('test_form' => false));

            if (isset($file['file'])) {
                $file_loc = $file['file'];

                $attachment = array(
                    'post_mime_type' => $file_type['type'],
                    'post_title' => preg_replace('/\.[^.]+$/', '', basename($file_name)),
                    'post_content' => '',
                    'post_status' => 'inherit'
                );

                $attach_id = wp_insert_attachment($attachment, $file_loc);
                $attach_data = wp_generate_attachment_metadata($attach_id, $file_loc);
                wp_update_attachment_metadata($attach_id, $attach_data);
            }

            if ($attach_id) {
                array_push($list_attachment_id, $attach_id);
                $attachment = get_post($attach_id);
                if($key == 0){
                    $img = wp_get_attachment_image_src($attachment->ID, 'large');
                }
                else{
                    $img = wp_get_attachment_image_src($attachment->ID, 'thumbnail', false);
                }

                if($arr_url == ""){
                     $arr_url =$img[0];
                }else
                    $arr_url .=",".$img[0];
            }

        }
    }
}
$result = array(
    "img" => $arr_url,
    "attachment_list"=> $list_attachment_id);
echo json_encode($result);
?>


